package com.trial.area.permission.service;

import java.util.List;
import java.util.UUID;

import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.trial.area.permission.dao.AdminUserDao;
import com.trial.area.permission.entity.AdminUserVO;
import com.trial.area.permission.param.AdminUserParam;

/**
 * 用户信息Service实现类
 *
 * @author 朱国军
 * @version 2016年09月19日  朱国军
 */
@Service
public class AdminUserService{
	
	@Autowired
    private AdminUserDao adminUserDao;
	
	/**
     * 新增，注：返回的添加的条数，获取主键用entity.getId();
     *
     * @param entity 要增加的用户信息对象
     * @return 返回新增的条数
     */
    public Integer insert(AdminUserVO entity){
    	return adminUserDao.insert(entity);
    }

	/**
     * 修改或新增
     *
     * @param entity 要修或新增的用户信息对象
     * @return 返回修改的条数
     */
    public Integer update(AdminUserVO entity){
    	if(StringUtils.isBlank(entity.getAdminUserId())){
    		entity.setAdminUserId(UUID.randomUUID().toString());
    		entity.setDataStatus(0);
    		return adminUserDao.insert(entity);
    	}else{
    		return adminUserDao.update(entity);
    	}
    	
    }

	/**
     * 根据ID获取用户信息实体
     *
     * @param id 主键
     * @return 用户信息信息
     */
    public AdminUserVO findById(String id){
    	return adminUserDao.findById(id);
    }

	/**
     * 按查询条件【分页】查询
     *
     * @param param 用户信息查询条件
     * @return 用户信息列表
     */
    public List<AdminUserVO> queryByPage(AdminUserParam param){
    	return adminUserDao.queryByPage(param);
    }

	/**
     * 根据ID删除用户信息
     *
     * @param id 主键
     */
    public Integer delete(String id){
    	return adminUserDao.delete(id);
    }

	/**
	 * 根据账号查询管理员用户信息
	 *
	 * @param userAccount 用户账号
	 * @return 管理员账号信息
	 */
	public AdminUserVO queryByAccount(String userAccount) {
		return adminUserDao.queryByAccount(userAccount);
	}
}